<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Inverse kinematics</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>

<body>

<div align="center">
<table class=allEncompassingTable >
 <tr>
  <td >
<p><a href="../index.html" TARGET="_top"><img src="images/homeImg.png"></a></p>



<h1>Inverse kinematics</h1>


<p>CoppeliaSim's inverse kinematics (IK) calculation module is very powerful and flexible. It allows handling virtually any type of mechanism in inverse kinematics mode (IK mode) or forward kinematics mode (FK mode). The problem of IK can be seen as the one of finding the joint values corresponding to some specific position and/or orientation of a given body element (generally the end effector). More generally, it is a transformation from the task space coordinates into the joint space coordinates. For a serial manipulator for instance, the problem would be to find the value of all <a href="joints.htm">joints</a> in the manipulator given the position (and/or orientation) of the end effector. The inverse problem - finding the end effector position given the joint values - is referred to as FK problem and is often perceived as an easier task than IK. This is surely true when dealing with open kinematic chains, but does not hold true for general type mechanical configurations as following one for instance:
</p>

<p align=center><img src="images/inverseKinematics1.jpg"></p>
<p class=imageLabel>[Non-trivial FK problem: knowing the joint values indicated by the arrows, the end effector position and orientation is sought]</p>
<br>

<p>Some results of the inverse kinematics calculation module can be recorded by graph objects. Refer to <a href="graphs.htm">graphs</a> and <a href="dataStreamTypes.htm">graph data stream types</a> for more information about how to record inverse kinematics calculation data.
</p>

<p>The kinematics functionality is also available for stand-alone applications (i.e. applications not directly part of the CoppeliaSim framework, like  applications on a different computer,  on a robot, or controller). This is made possible via the <a href="coppeliaKinematicsRoutines.htm">Coppelia kinematics routines</a>.</p>

<p>Finally, make sure to have a look at the various simple example scenes related to IK and FK in folder <em>scenes/ik_fk_simple_examples</em>.</p>


<br>
<h3 class=recommendedTopics>Recommended topics</h3>


<li><a href="apiFunctionListCategory.htm#generalIkFunctionality">Related API functions (regular API)</a></li>
<li><a href="coppeliaKinematicsRoutines.htm">Related API functions (auxiliary API)</a></li>
<li><a href="basicsOnIkGroupsAndIkElements.htm">Basics on IK groups and IK elements</a></li>
<li><a href="solvingIkAndFk.htm">Solving IK and FK for any type of mechanism</a></li>
<li><a href="ikDialog.htm">Inverse kinematics dialog</a></li>
<li><a href="coppeliaKinematicsRoutines.htm">Coppelia kinematics routines</a></li>
<br>
<br>
 </tr>
</table> 
</div>  
  
  
</body>

</html>
